package cn.itcast.redis.listener;

import org.springframework.data.redis.connection.Message;
import org.springframework.data.redis.listener.KeyExpirationEventMessageListener;
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
import org.springframework.stereotype.Component;

/**
 * @author zhangtian105
 * @ClassName RedisKeyExpirationListener.java
 * @projectName Redis
 * @Description 接口监听所有 db 的过期事件 keyevent@*:expired"
 * @createTime 2020年04月16日 10:05:00
 */
@Component
public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener {

    public RedisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
        super(listenerContainer);
    }

    /**
     * 功能描述: <br>
     * 〈针对 redis 数据失效事件，进行数据处理〉
     * @Param: [message, pattern]
     * @Return: void
     * @Author: zhangtian105
     * @Date: 2020/4/16 10:09
     */
    @Override
    public void onMessage(Message message, byte[] pattern) {
        // 获取到失效的 key，进行取消订单业务处理
        String expiredKey = message.toString();
        System.out.println(expiredKey);
    }
}
